package com.cx.zyx.modulebiz.user.controller;

import com.cx.zyx.modulebiz.user.model.AdminInfo;
import com.cx.zyx.modulebiz.user.model.LoginRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@Slf4j
@RefreshScope       // 自动刷新nacos配置
@RestController
@RequestMapping("/admin")
public class AdminController {

    @Value("${user.admin.name}")
    private String username;
    @Value("${user.admin.email}")
    private String email;
    @Value("${spring.application.name}")
    private String appName;

    /**
     * 管理员登录接口
     * @param loginRequest 包含用户名和密码的请求体
     * @return 登录结果（如 token 或用户信息）
     */
    @PostMapping("/login")
    public ResponseEntity<?> login(@RequestBody LoginRequest loginRequest) {
        throw new UnsupportedOperationException("该方法尚未实现");
    }

    /**
     * 获取当前管理员信息（需携带 token）
     * @param token 从请求头中获取的 token
     * @return 管理员信息
     */
    @GetMapping("/profile")
    public ResponseEntity<AdminInfo> getProfile(@RequestHeader("Authorization") String token) {
        throw new UnsupportedOperationException("该方法尚未实现");
    }

    /**
     * 获取系统自带管理员信息
     * @return 默认管理员信息
     */
    @GetMapping("/default")
    public ResponseEntity<AdminInfo> getDefaultProfile() throws InterruptedException {
        log.info("获取系统自带管理员信息，当前应用名称：{}", appName);
        // 模拟慢请求
        Thread.sleep(300);
        return ResponseEntity.ok(new AdminInfo(username, "管理员1", email));
    }

    /**
     * 管理员登出
     * @param token 当前用户的 token
     * @return 成功或失败的状态
     */
    @PostMapping("/logout")
    public ResponseEntity<String> logout(@RequestHeader("Authorization") String token) {
        throw new UnsupportedOperationException("该方法尚未实现");
    }
}

